Amy Shields

6 mins read


d

Modern Developer Digital Garden Starter

As a developer who creates content, I want to have a digital garden where I can share my thoughts and ideas with the world. Now, there's not really a "perfect solution" for this currently. With included analytics, SEO, email subscribtions, modern tooling, simple design, etc. We either have to build one from scratch, use a design template and code the features, or use a CMS/no-code tool.


Deploy with Vercel

An open source digital gardening template for developers using Next.js app router, MDX, Contentlayer, Tailwind CSS, @shadcn/ui , Lucide Icons, and more.

This project is from developers for developers. Please feel free to report a bug, discuss the current state, submit ideas for improvements, submit a fix, propose new features, or whatever you want. All contributions are welcome! Read more at the contributing guidelines.

If you love this template and/or use it, please give it a star on GitHub. This will help more people discover it, thus help improving the template.

GitHub Repo stars

Note: This project is always evolving and it's far from being perfect or even done. I'm always open to suggestions and contributions. Feel free to open an issue or a PR if you have any ideas or suggestions. You can also see the roadmap for planned features if you want to contribute.

hello.js
1let hello = "hello darkness";
2
3console.log(hello, "my old friend");
hello.js
1let hello = "hello darkness";
2
3console.log(hello, "my old friend");

Motivation

As a developer who creates content, I want to have a digital garden where I can share my thoughts and ideas with the world. Now, there's not really a "perfect solution" for this currently. With included analytics, SEO, email subscribtions, modern tooling, simple design, etc. We either have to build one from scratch, use a design template and code the features, or use a CMS/no-code tool.

So I decided to build a solution that I would use myself. This is the result.

It's always evolving and I'm always open to suggestions and contributions. Feel free to open an issue or a PR if you have any ideas or suggestions.

Getting Started

  1. Use the repo as a template
  2. Install dependencies with pnpm install
  3. Edit utils/metadata.ts with your information
  4. Edit utils/usesData.ts with your information
  5. Edit utils/projectsData.ts with your information
  6. Edit content/pages/now with your information
  7. Edit content/pages/about with your information
  8. Run the development server with pnpm dev

Open http://localhost:3000 in your browser to see the result.

Writing content

You can write content in Markdown or MDX. The content is located in content/ and is organized in folders. The pages folder contains the pages. The posts folder contains the blogposts. The projects folder contains the projects.

Deployment

You can deploy the project with Vercel or any other hosting provider. If you want to use Vercel, you can use the button at the top of this README.

  1. Update package.json author information
  2. Set up the NEXT_PUBLIC_BASE_URL environment variable on Vercel to point to your digital garden's root URL
  3. Build and deploy

Writing content

You can write content in Markdown or MDX. The content is located in content/ and is organized in folders. The pages folder contains the pages. The posts folder contains the blogposts. The projects folder contains the projects.

Customization

Fonts

This project uses Inter as the default font. You can change it on app/layout.tsx using the next/fonts package.

Colors

The project uses Tailwind colors and @shadcn/ui config. Customize the colors on globals.css.

Metadata

You can change the metadata in utils/metadata.ts. This will be used around the site for social links, handles, SEO, and OG.

Analytics

WIP as I'm still deciding which analytics tools to support. Feel free to open an issue if you have any suggestions or a PR if you want to implement it yourself.

Newsletter subscription

WIP as I'm still deciding which email tools to support. Feel free to open an issue if you have any suggestions or a PR if you want to implement it yourself.

Hero section

You can choose between 3 different hero variants to use in app/(site)/layout.tsx.

  1. Simple - A simple centered hero section with image, title, socials, and subtitle.
  2. Video - 2 column hero section with Videoask embed on one side and title and subtitle on the other.
  3. Image - 2 column hero section with image on one side and title, socials, and subtitle on the other.

Other tips & tricks

Image optimization

Optimize images in seconds for free with ImageOptim. Install on your Mac, then open the public folder in Finder. Select all images, right-click, and choose "Open with > ImageOptim". This will optimize all images in the folder.

Examples

Create a PR and add your digital garden to this list if you're using the template!

Features & Roadmap

  • Basic functionality of reading pages and posts
  • Basic design dark/light mode
  • MDX code highlighting
  • Readme.md
  • robots.txt & sitemap.xml
  • RSS Feed
  • Reading time estimate
  • LICENSE
  • contributing.md
  • MDX components (TOC & footnotes)
  • general config & metadata (author, URL, socials, etc.)
  • uses page
  • Link in bio page
  • OG image generation
  • projects page
  • about section on homepage
  • Design improvements (whitespace, layout, etc.)
  • manifest.json
  • search & command bar
  • newsletter integration
  • Post series
  • Hidden content (behind email subscription)
  • 100 lighthouse score
  • Command bar fuzzy search in content
  • Pagination
  • SEO improvements
  • analytics (fathom, simplelytics, vercel)
  • Accessibility audit
  • TypeScript fixes
  • Redesign uses page
  • Redesign projects page
  • general refactor
  • general cleanup
  • implement content security policies
  • implement a videoask-like solution for the hero section
  • Post like counter (?)
  • Visitor counter (?)
  • code playground instead of code highlighting (?)
  • Categories and/or tags (?)
  • Commenting system (?)
  • Social sharing buttons (?)
  • keyboard-based navigation with hotkeys (?)
  • multiple layouts (sidebar, full-width, etc.) (?)
  • multilang support (?)

Inspiration & Mentions

Support

If you love this template and/or use it, please give it a star on GitHub.


  • jamstack
  • technology
  • javascript
  • frontend
  • development
  • opinion