AI generation through a local Ollama instance; the README states no API fees and no dependence on a cloud LLM
writeflow — Next.js Blog Template
By Aussielad89
WriteFlow is a Next.js-based AI content creation app that generates blog posts, social media content, emails, ad copy and more through a local Ollama instance, with email/password login, project management and a quota system.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Provides six content templates: blog posts, social media, emails, product descriptions, ad copy and SEO outlines
The editor supports real-time streaming output, and generated results can be edited, saved and iterated on
Uses NextAuth v5 email/password authentication, together with a Prisma adapter and bcrypt
The quota system has three tiers: Free (1 × 10,000 tokens), Pro (10 × 10,000 tokens) and Agency (50 × 10,000 tokens)
The README lists a Vercel deployment method, but notes that Ollama still needs to run locally
Template Details
WriteFlow is a Next.js application for generating blog posts, social media content, emails, ad copy and more; AI generation relies entirely on a locally running Ollama instance, and the README states it requires no API fees and does not depend on a cloud LLM.
On features, the README lists six content templates: blog posts, social media, emails, product descriptions, ad copy and SEO outlines. The editor supports real-time streaming of AI results, which can be edited, saved and iterated on; projects can be saved, organized and revisited. Authentication uses NextAuth v5 email/password, together with a Prisma adapter and bcrypt. The quota system has three tiers: Free (1 × 10,000 tokens), Pro (10 × 10,000 tokens) and Agency (50 × 10,000 tokens); the README states the quota limits are for fair use on the free tier.
On the tech stack, the README specifies Next.js App Router, TypeScript and Tailwind CSS for the frontend, Next.js API Routes and Prisma ORM for the backend, SQLite for local development and optional PostgreSQL for production, Zustand for state management, React Hook Form and Zod for forms, and Ollama with JSONL streaming for the AI part. The README mentions one-click Vercel deployment, but notes that Ollama still needs to keep running locally.
The README does not provide further details on multi-user concurrency, production security hardening or the range of Ollama model compatibility; features such as team users, API access and custom templates in the pricing table are listed only in table form, with no implementation details given.
Is it right for your project?
Use Cases
- After running Ollama locally, generate a blog post draft or SEO outline
- Write tweet threads, LinkedIn posts or Instagram copy for social media
- Write professional or casual email content
- Generate e-commerce product descriptions or ad headlines and body copy
Suitable For
- Developers who have installed Ollama and want to generate content with local models
- Individual creators who need to draft multiple kinds of copy in bulk by template
- Users who want to self-deploy and store project data in SQLite or PostgreSQL
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 22+, and after installing Ollama, pull at least one model, for example ollama pull llama3.2:3b
- 2
After cloning the repository, run npm install, copy .env.local.example to .env.local; OLLAMA_URL defaults to http://localhost:11434
- 3
Run ollama serve to start the local service, then run npm run dev to start the development server (http://localhost:3000)
- 4
Run npx prisma db push to create the SQLite database and table structure; optionally use npx prisma studio to view data in the browser
- 5
The README reminds that NEXTAUTH_SECRET must be changed for production
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in a public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use and distribution of that version's code are allowed.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments or AI may charge separately.
- AI generation relies entirely on a locally running Ollama instance; you must install Ollama yourself and pull models, and it cannot run on cloud services alone.
- The README notes that with one-click Vercel deployment, Ollama still needs to keep running locally, so hosted deployment cannot complete AI generation independently.
- The quota system has three tiers: Free (1 × 10,000 tokens), Pro (10 × 10,000 tokens) and Agency (50 × 10,000 tokens); Pro and Agency are paid upgrades, and the free tier includes only basic templates and community support.
- The README reminds that NEXTAUTH_SECRET must be changed for production, which is a security configuration that must be handled before deployment.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
Original README
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
Original README
IyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
Original README
https://github.com/Aussielad89/writeflow/blob/main/LICENSEhttps://github.com/Aussielad89/writeflow/blob/main/README.mdIyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-15. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 80 / 100
- Technologies
- Next.js · React
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-08
- Screenshot last checked
- 2026-10-15
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261017 · 2026-10-16
Inspect the recorded source material
SHA-256: 82985231cb33bd468d61c0dfc7d8a23efe45efa648d7545b3894e924cbb24957
2026-10-15T00:02:13.715Z
Source file / repositoryIyBXcml0ZUZsb3cg4oCUIEFJIENvbnRlbnQgQ3JlYXRpb24gKExvY2FsIE9sbGFtYSkKCj4gQSBmdWxsLWZlYXR1cmVkIE5leHQuanMgMTQgYXBwIGZvciBnZW5lcmF0aW5nIGJsb2cgcG9zdHMsIHNvY2lhbCBtZWRpYSwgZW1haWxzLCBhZCBjb3B5ICYgbW9yZSDigJQgcG93ZXJlZCBlbnRpcmVseSBieSB5b3VyIGxvY2FsIE9sbGFtYSBpbnN0YW5jZS4gTm8gQVBJIGNvc3RzLCBubyBjbG91ZCBMTE0uIEp1c3QgcnVuIE9sbGFtYSBhbmQgZ28uCgohW1dyaXRlRmxvdyBTY3JlZW5zaG90XShodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTIwMHg2MzAucG5nP3RleHQ9V3JpdGVGbG93K0FJK0NvbnRlbnQrQ3JlYXRpb24pCgojIyDinKggRmVhdHVyZXMKCi0gKipMb2NhbCBBSSoqIOKAlCBTdHJlYW1zIGZyb20gT2xsYW1hIChsbGFtYTIsIHBoaTMsIGxsYW1hMy4yLCBldGMuKS4gWmVybyBwZXItdG9rZW4gY29zdHMuCi0gKipBdXRoZW50aWNhdGlvbioqIOKAlCBFbWFpbC9wYXNzd29yZCBhdXRoIHZpYSBOZXh0QXV0aCB2NSArIFByaXNtYSBhZGFwdGVyLgotICoqNiBDb250ZW50IFRlbXBsYXRlcyoqIOKAlCBCbG9nIHBvc3QsIHNvY2lhbCBtZWRpYSwgZW1haWwsIHByb2R1Y3QgZGVzY3JpcHRpb24sIGFkIGNvcHksIFNFTyBvdXRsaW5lLgotICoqTGl2ZSBFZGl0b3IqKiDigJQgUmVhbC10aW1lIHN0cmVhbWluZyBBSSBvdXRwdXQsIGVkaXQsIHNhdmUsIGFuZCBpdGVyYXRlLgotICoqUHJvamVjdCBNYW5hZ2VtZW50Kiog4oCUIFNhdmUsIG9yZ2FuaXplLCBhbmQgcmV2aXNpdCBhbGwgeW91ciBwcm9qZWN0cy4KLSAqKkNyZWRpdCBTeXN0ZW0qKiDigJQgRnJlZSAoMTBLIHRva2VucyksIFBybyAoMTAwSyksIEFnZW5jeSAoNTAwSykgdGllcnMuCi0gKipEYXJrIE1vZGUgUmVhZHkqKiDigJQgVGFpbHdpbmQgQ1NTICsgbmV4dC10aGVtZXMuCi0gKipWZXJjZWwgRGVwbG95IFJlYWR5Kiog4oCUIE9uZS1jbGljayBkZXBsb3kgKG5vdGU6IE9sbGFtYSBzdGF5cyBsb2NhbCkuCgojIyDwn5qAIFF1aWNrIFN0YXJ0CgojIyMgUHJlcmVxdWlzaXRlcwoKLSAqKk5vZGUuanMgMjIrKiog4oCUIFtEb3dubG9hZF0oaHR0cHM6Ly9ub2RlanMub3JnLykKLSAqKk9sbGFtYSoqIOKAlCBbSW5zdGFsbCBPbGxhbWFdKGh0dHBzOi8vb2xsYW1hLmNvbS9kb3dubG9hZCkgYW5kIHB1bGwgYXQgbGVhc3Qgb25lIG1vZGVsOgogIGBgYGJhc2gKICBvbGxhbWEgcHVsbCBsbGFtYTMuMjozYgogIG9sbGFtYSBwdWxsIHBoaTQtbWluaTozLjhiCiAgYGBgCgojIyMgSW5zdGFsbGF0aW9uCgpgYGBiYXNoCmdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vYXVzc2llbGFkODkvd3JpdGVmbG93LmdpdApjZCB3cml0ZWZsb3cKbnBtIGluc3RhbGwKYGBgCgojIyMgUnVuIE9sbGFtYSBsb2NhbGx5CgpgYGBiYXNoCm9sbGFtYSBzZXJ2ZQpgYGAKCiMjIyBDb25maWd1cmUgZW52aXJvbm1lbnQKCmBgYGJhc2gKY3AgLmVudi5sb2NhbC5leGFtcGxlIC5lbnYubG9jYWwKIyBPTExBTUFfVVJMIGRlZmF1bHRzIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6MTE0MzQKIyBORVhUQVVUSF9TRUNSRVQg4oCUIGNoYW5nZSBpbiBwcm9kdWN0aW9uCmBgYAoKIyMjIFN0YXJ0IHRoZSBkZXYgc2VydmVyCgpgYGBiYXNoCm5wbSBydW4gZGV2CiMgaHR0cDovL2xvY2FsaG9zdDozMDAwCmBgYAoKIyMjIERhdGFiYXNlIHNldHVwCgpgYGBiYXNoCm5weCBwcmlzbWEgZGIgcHVzaCAgICMgY3JlYXRlcyBTUUxpdGUgZGIgKyBzY2hlbWEKbnB4IHByaXNtYSBzdHVkaW8gICAgIyBvcHRpb25hbDogdmlldy9lZGl0IGRhdGEgaW4gYnJvd3NlcgpgYGAKCiMjIPCfjq8gVGVtcGxhdGVzCgp8IFRlbXBsYXRlIHwgRGVzY3JpcHRpb24gfCBTeXN0ZW0gUHJvbXB0IHwKfC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgQmxvZyBQb3N0IHwgRnVsbCBhcnRpY2xlIHdpdGggaW50cm8sIGJvZHksIGNvbmNsdXNpb24gfCBg4pyN77iPYCB8CnwgU29jaWFsIE1lZGlhIHwgVHdpdHRlciB0aHJlYWRzLCBMaW5rZWRJbiBwb3N0cywgSUcgY2FwdGlvbnMgfCBg8J+TsWAgfAp8IEVtYWlsIFdyaXRlciB8IFByb2Zlc3Npb25hbCBvciBjYXN1YWwgZW1haWxzIHwgYPCfk6dgIHwKfCBQcm9kdWN0IERlc2NyaXB0aW9uIHwgRS1jb21tZXJjZSBjb3B5IHRoYXQgY29udmVydHMgfCBg8J+bkmAgfAp8IEFkIENvcHkgfCBIZWFkbGluZXMgKyBib2R5IGZvciBhZHMgfCBg8J+To2AgfAp8IFNFTyBCbG9nIE91dGxpbmUgfCBLZXl3b3JkLW9wdGltaXplZCBvdXRsaW5lcyB8IGDwn5SNYCB8CgojIyDwn5KwIFByaWNpbmcKCnwgUGxhbiB8IFByaWNlIHwgVG9rZW5zL21vIHwgUHJvamVjdHMgfCBGZWF0dXJlcyB8CnwtLS0tLS18LS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgKipGcmVlKiogfCAkMCB8IDEwLDAwMCB8IDMgfCBCYXNpYyB0ZW1wbGF0ZXMsIGNvbW11bml0eSBzdXBwb3J0IHwKfCAqKlBybyoqIHwgJDkvbW8gfCAxMDAsMDAwIHwgVW5saW1pdGVkIHwgQWxsIHRlbXBsYXRlcywgcHJpb3JpdHkgc3VwcG9ydCB8CnwgKipBZ2VuY3kqKiB8ICQyOS9tbyB8IDUwMCwwMDAgfCBVbmxpbWl0ZWQgfCA1IHRlYW0gdXNlcnMsIEFQSSBhY2Nlc3MsIGN1c3RvbSB0ZW1wbGF0ZXMgfAoKPiBBbGwgQUkgZ2VuZXJhdGlvbiB1c2VzIHlvdXIgbG9jYWwgT2xsYW1hIOKAlCB0aGUgY3JlZGl0IGxpbWl0cyBhcmUgZm9yIGZhaXJuZXNzL2ZhaXItdXNhZ2Ugd2l0aGluIHRoZSBmcmVlIHRpZXIuCgojIyDwn4+X77iPIFByb2plY3QgU3RydWN0dXJlCgpgYGAKd3JpdGVmbG93LwrilJzilIDilIAgYXBwLwrilIIgICDilJzilIDilIAgKGF1dGggcGFnZXMpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBsb2dpbi9wYWdlLnRzeArilIIgICDilIIgICDilJTilIDilIAgcmVnaXN0ZXIvcGFnZS50c3gK4pSCICAg4pSc4pSA4pSAIChkYXNoYm9hcmQpCuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBkYXNoYm9hcmQvcGFnZS50c3ggICAgICAgICAgIyBQcm9qZWN0IGxpc3QgKyB0ZW1wbGF0ZSBwaWNrZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIG5ldy1wcm9qZWN0L3BhZ2UudHN4ICAgICAgICAjIENyZWF0ZSBuZXcgcHJvamVjdArilIIgICDilIIgICDilJzilIDilIAgZWRpdG9yL1tpZF0vcGFnZS50c3ggICAgICAgICMgQUkgZWRpdG9yIHdpdGggc3RyZWFtaW5nCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBzZXR0aW5ncy9wYWdlLnRzeArilIIgICDilJzilIDilIAgYXBpLwrilIIgICDilIIgICDilJzilIDilIAgYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzICAjIE5leHRBdXRoIGhhbmRsZXIK4pSCICAg4pSCICAg4pSc4pSA4pSAIGF1dGgvcmVnaXN0ZXIvcm91dGUudHMgICAgICAgIyBSZWdpc3RyYXRpb24gZW5kcG9pbnQK4pSCICAg4pSCICAg4pSc4pSA4pSAIG9sbGFtYS9yb3V0ZS50cyAgICAgICAgICAgICAgIyBPbGxhbWEgc3RyZWFtaW5nIHByb3h5CuKUgiAgIOKUgiAgIOKUnOKUgOKUgCBwcm9qZWN0cy9yb3V0ZS50cyAgICAgICAgICAgICMgUHJvamVjdCBDUlVEIChsaXN0LCBjcmVhdGUpCuKUgiAgIOKUgiAgIOKUlOKUgOKUgCBwcm9qZWN0cy9baWRdL3JvdXRlLnRzICAgICAgICMgUHJvamVjdCBDUlVEIChnZXQsIHVwZGF0ZSkK4pSCICAg4pSc4pSA4pSAIGxheW91dC50c3gK4pSCICAg4pSU4pSA4pSAIGdsb2JhbHMuY3NzCuKUnOKUgOKUgCBsaWIvCuKUgiAgIOKUnOKUgOKUgCBhdXRoLnRzICAgICAgICAgICAgIyBOZXh0QXV0aCBjb25maWcgKyBzZXNzaW9uCuKUgiAgIOKUnOKUgOKUgCBhdXRoLmNvbmZpZy50cyAgICAgIyBDcmVkZW50aWFsIHByb3ZpZGVyICsgY2FsbGJhY2tzCuKUgiAgIOKUnOKUgOKUgCBkYi50cyAgICAgICAgICAgICAgIyBQcmlzbWEgY2xpZW50CuKUgiAgIOKUnOKUgOKUgCBjcmVkaXRzLnRzICAgICAgICAgIyBDcmVkaXQgbGltaXQgbG9naWMK4pSCICAg4pSU4pSA4pSAIHRlbXBsYXRlcy50cyAgICAgICAjIFRlbXBsYXRlIGRlZmluaXRpb25zCuKUnOKUgOKUgCBwcmlzbWEvCuKUgiAgIOKUlOKUgOKUgCBzY2hlbWEucHJpc21hICAgICAgIyBEQiBzY2hlbWEgKFNRTGl0ZSkK4pSc4pSA4pSAIC5lbnYubG9jYWwK4pSc4pSA4pSAIHBhY2thZ2UuanNvbgrilJTilIDilIAgdHNjb25maWcuanNvbgpgYGAKCiMjIPCfm6DvuI8gVGVjaCBTdGFjawoKfCBMYXllciB8IFRlY2hub2xvZ3kgfAp8LS0tLS0tLXwtLS0tLS0tLS0tLXwKfCBGcm9udGVuZCB8IE5leHQuanMgMTYgQXBwIFJvdXRlciwgVHlwZVNjcmlwdCwgVGFpbHdpbmQgQ1NTIHY0IHwKfCBCYWNrZW5kIHwgTmV4dC5qcyBBUEkgUm91dGVzLCBQcmlzbWEgT1JNIHwKfCBEYXRhYmFzZSB8IFNRTGl0ZSAobG9jYWwgZGV2KSwgUG9zdGdyZXMgKHByb2R1Y3Rpb24gb3B0aW9uYWwpIHwKfCBBdXRoIHwgTmV4dEF1dGggdjUsIENyZWRlbnRpYWxzIHByb3ZpZGVyLCBiY3J5cHQgfAp8IEFJIHwgT2xsYW1hIChsb2NhbCksIEpTT05MIHN0cmVhbWluZyB8CnwgU3RhdGUgfCBadXN0YW5kIChjbGllbnQtc2lkZSBjYWNoaW5nKSB8CnwgRm9ybXMgfCBSZWFjdCBIb29rIEZvcm0gKyBab2QgdmFsaWRhdGlvbiB8CnwgRGVwbG95bWVudCB8IFZlcmNlbCAoZnJvbnRlbmQgKyBBUEkpLCBPbGxhbWEgbG9jYWwgfAoKIyMg8J+nqiBWZXJpZmljYXRpb24KCkZ1bGwgZW5kLXRvLWVuZCB0ZXN0ZWQ6Ci0g4pyFIFJlZ2lzdGVyIG5ldyB1c2VyIGFjY291bnQKLSDinIUgTG9naW4gdmlhIGNyZWRlbnRpYWxzCi0g4pyFIEF1dGgtcHJvdGVjdGVkIHJvdXRlIHJlZGlyZWN0Ci0g4pyFIENyZWF0ZSBwcm9qZWN0IHdpdGggdGVtcGxhdGUKLSDinIUgT2xsYW1hIHN0cmVhbWluZyBnZW5lcmF0aW9uICgzNEsrIHRva2VucyBzdHJlYW1lZCkKLSDinIUgSlNPTkwgcmVzcG9uc2UgcGFyc2luZwotIOKchSBDcmVkaXQgdHJhY2tpbmcKCiMjIPCfk50gTGljZW5zZQoKTUlUIOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLgo=
Explore similar templates
Compare previews and descriptions within the same stack and category.

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

Nextjs-tailwindcss-blog-template
A Next.js blog styled with Tailwind CSS. The current branch processes Markdown with Velite; the earlier Contentlayer setup is retained in a separate historical branch.
Next.js · Blog

Next-js-Blog-Boilerplate
A blog starter built on Next.js 12 and Tailwind CSS 3, integrating TypeScript, ESLint, Prettier, and PostCSS.
Next.js · Blog

nextjs-blog-theme
A Next.js 15 and Tailwind CSS 4.x blog starter by Netlify, designed by Bejamas, with MDX support, dark/light theme switching, and environment-variable configuration. It includes a visual setup wizard for deploying to Netlify and manages content via local .mdx files.
Next.js · Blog

blog
A personal blog forked from Timlrx's tailwind-nextjs-starter-blog, built with Next.js, React, and Tailwind CSS. Content is stored as Markdown/MDX under data/, with site, author, navigation, and project data in separate files.
Next.js · Blog

tailnext
Tailnext is a free, open-source template built on the Next.js 14 App Router and Tailwind CSS, created by the onWidget team.
Next.js · Blog
