Code of Conduct
CodeInk is an open-source project licensed under the MIT License. We welcome contributions from everyone who wants to improve the project.MIT License
CodeInk is free and open-source software. You’re free to use, modify, and distribute it under the terms of the MIT License.Copyright (c) 2026 Jorge Florentino
Ways to Contribute
Report Bugs
Found a bug? Open an issue on GitHub with steps to reproduce
Suggest Features
Have an idea? Create a feature request issue
Fix Issues
Browse open issues and submit pull requests
Improve Docs
Help improve documentation and guides
Getting Started
Fork the repository
Fork jorgefl8/codeink to your GitHub account.
Coding Standards
TypeScript Guidelines
Type Safety
Type Safety
Always use explicit types for function parameters and return values:
Async/Await
Async/Await
Prefer async/await over promise chains:
Naming Conventions
Naming Conventions
- Functions: camelCase (
createEditor,renderPreview) - Components: PascalCase (
Editor.astro,StatusBar.astro) - Constants: UPPER_SNAKE_CASE (
DB_NAME,AUTO_SAVE_DEBOUNCE_MS) - Interfaces: PascalCase (
Document,EditorOptions)
File Organization
CSS/Styling Guidelines
Tailwind First
Tailwind First
Use Tailwind utility classes for styling:
CSS Variables
CSS Variables
Use CSS custom properties defined in Available tokens:
src/styles/tokens.css:- Colors:
--background,--foreground,--primary,--muted-foreground - Spacing: Use Tailwind classes
- Typography:
--font-sans,--font-mono
Testing Your Changes
Manual Testing Checklist
Before submitting, test the following:Editor functionality
- Editor loads and displays content
- Typing updates the preview
- Syntax highlighting works
- Theme switching works
Markdown rendering
- Headings, lists, and formatting render correctly
- Code blocks have syntax highlighting
- Mermaid diagrams render
- Math expressions (KaTeX) render
Document management
- Documents save automatically
- Documents load from URL hash
- Document list displays correctly
- Delete functionality works
Build Testing
Test the production build:- No build errors
- No TypeScript errors
- All features work in production mode
Submitting Pull Requests
Commit your changes
Write clear, descriptive commit messages:Commit message format:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting)refactor:Code refactoringperf:Performance improvementstest:Adding testschore:Maintenance tasks
Open a pull request
- Go to the CodeInk repository
- Click “Pull Requests” → “New Pull Request”
- Select your fork and branch
- Fill out the PR template
Pull Request Review Process
- Automated checks: TypeScript type checking runs automatically
- Maintainer review: A maintainer will review your code
- Feedback: Address any requested changes
- Approval: Once approved, your PR will be merged
PRs typically receive initial feedback within 3-5 days.
Areas That Need Help
Looking for where to contribute? Here are priority areas:Export Formats
Add HTML, PDF, or DOCX export functionality
Collaborative Editing
Implement real-time collaboration features
Mobile Experience
Improve mobile editor UX and gestures
Accessibility
Enhance keyboard navigation and screen reader support
Internationalization
Add multi-language UI support
Plugin System
Design extensible plugin architecture
Development Tips
Debugging the editor
Debugging the editor
Access the CodeMirror instance in browser console:
Testing IndexedDB
Testing IndexedDB
View stored documents in browser DevTools:
- Open DevTools → Application tab
- Expand “IndexedDB” → “codeink-docs”
- Click “documents” store
Hot module replacement
Hot module replacement
HMR is enabled by default. For script changes that don’t reload:
Performance profiling
Performance profiling
Use browser DevTools Performance tab:
- Start recording
- Type in editor
- Stop recording
- Look for long tasks (>50ms)
Getting Help
GitHub Discussions
Ask questions and discuss ideas
GitHub Issues
Report bugs and request features
Recognition
Contributors are recognized in:- GitHub contributors list
- Release notes for significant contributions
- Project README
Next Steps
Setup Guide
Set up your development environment
Architecture
Understand the codebase architecture
Code Structure
Learn the project organization