├── .prettierrc
├── server
├── constants.ts
├── lib
│ └── slugify.ts
├── response.ts
├── guards
│ ├── require-blog-access.ts
│ └── require-auth.ts
├── decorators
│ └── gql-context.ts
├── services
│ ├── post.service.ts
│ └── blog.service.ts
├── prisma.ts
├── markdown
│ ├── excerpt-plugin.ts
│ └── index.ts
├── auth.ts
├── passport.ts
└── resolvers
│ ├── blog.resolver.ts
│ └── post.resolver.ts
├── src
├── components
│ ├── TagsInput.tsx
│ ├── Container.tsx
│ ├── Button.tsx
│ ├── layouts
│ │ ├── BaseLayout.tsx
│ │ ├── AppLayout.tsx
│ │ └── BlogLayout.tsx
│ ├── LikeButton.tsx
│ ├── PostList.tsx
│ ├── dashboard
│ │ └── BlogSidebar.tsx
│ └── PostEditor.tsx
├── css
│ ├── tailwind.css
│ ├── post.css
│ ├── nprogress.css
│ ├── prism.css
│ ├── main.css
│ ├── codemirror-monokai.css
│ └── codemirror.css
├── graphql
│ ├── deletePost.graphql
│ ├── getMyBlogs.graphql
│ ├── setLastActiveBlog.graphql
│ ├── getBlogForDashboard.graphql
│ ├── likePost.graphql
│ ├── createBlog.graphql
│ ├── getPostForEdit.graphql
│ ├── updateBlog.graphql
│ ├── updatePost.graphql
│ ├── getPostsForDashboard.graphql
│ └── createPost.graphql
├── lib
│ ├── editor.ts
│ └── urql-client.ts
├── pages
│ ├── api
│ │ ├── auth
│ │ │ ├── github
│ │ │ │ ├── callback.ts
│ │ │ │ └── index.ts
│ │ │ └── logout.ts
│ │ ├── graphql.ts
│ │ └── feed
│ │ │ └── [blog].ts
│ ├── 404.tsx
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── dashboard
│ │ ├── [blog]
│ │ │ ├── new-post.tsx
│ │ │ ├── edit-post
│ │ │ │ └── [post].tsx
│ │ │ ├── index.tsx
│ │ │ └── settings.tsx
│ │ └── index.tsx
│ ├── login.tsx
│ ├── about.tsx
│ ├── [blog]
│ │ ├── tags
│ │ │ └── [tag].tsx
│ │ ├── subscribe.tsx
│ │ ├── index.tsx
│ │ └── [post].tsx
│ ├── privacy.tsx
│ ├── index.tsx
│ ├── blogs.tsx
│ ├── new-blog.tsx
│ └── terms.tsx
└── generated
│ └── graphql.tsx
├── .gitignore
├── next-env.d.ts
├── postcss.config.js
├── babel.config.js
├── prisma
├── migrations
│ ├── 20210430091340_add_post_deleted_at
│ │ └── migration.sql
│ ├── migration_lock.toml
│ ├── 20210427165515_add_last_active_blog
│ │ └── migration.sql
│ └── 20210427141947_init
│ │ └── migration.sql
└── schema.prisma
├── .editorconfig
├── .vscode
└── settings.json
├── .env.example
├── types.d.ts
├── graphql-codegen.yml
├── tailwind.config.js
├── README.md
├── scripts
└── with-env.js
├── .github
└── workflows
│ └── node.js.yml
├── tsconfig.json
├── next.config.js
└── package.json
/.prettierrc:
--------------------------------------------------------------------------------
1 | "@egoist/prettier-config"
--------------------------------------------------------------------------------
/server/constants.ts:
--------------------------------------------------------------------------------
1 | export const AUTH_COOKIE_NAME = `app.auth`
2 |
--------------------------------------------------------------------------------
/src/components/TagsInput.tsx:
--------------------------------------------------------------------------------
1 | export const TagsInput = () => {}
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.log
3 | .DS_Store
4 | .next
5 | out/
6 | .env
7 |
--------------------------------------------------------------------------------
/src/css/tailwind.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
Blogify is a blogging platform for minimalists and developers.
27 |29 | There're a lot places where you can host a blog, for free, but Blogify 30 | is designed to be simple instead of bloated by features. 31 |
32 |Nobody resells your private data or track your usage.
34 |Enjoy the ad-free experience!
36 |38 | Blogify is free to use, the source code is also available on GitHub. 39 |
40 |28 | Blogify doesn't collect or store any personal information besides your 29 | GitHub public profile. 30 |
31 |33 | Cookies are necessary for the Site to function and cannot be switched 34 | off in our systems. For example, we use cookies to authenticate you. 35 | When you log on to our websites, authentication cookies are set which 36 | let us know who you are during a browsing session. We have to load 37 | essential cookies for legitimate interests pursued by us in delivering 38 | our Site's essential functionality to you. 39 |
40 |43 | Our website is hosted by Hetzner, a well-known Internet hosting 44 | company located at Germany, Europe. 45 |
46 |48 | Images and other kinds of static files uploaded by users are stored on 49 | Amazon S3. 50 |
51 |31 | This blog delivers updates via{' '} 32 | 37 | RSS 38 | 39 | . To use it, you need a reader. 40 |
41 | 42 |
58 | {encodeURI(`https://blogify.dev/${blog.name}/atom.xml`)}
59 |
60 | 28 | By accessing this web site, you are agreeing to be bound by these web 29 | site Terms and Conditions of Use, our Privacy Policy, all applicable 30 | laws and regulations, and agree that you are responsible for 31 | compliance with any applicable local laws. If you do not agree with 32 | any of these terms, you are prohibited from using or accessing this 33 | site. The materials contained in this web site are protected by 34 | applicable copyright and trade mark law. 35 |
36 |38 | In no event shall Blogify or its suppliers be liable for any damages 39 | (including, without limitation, damages for loss of data or profit, or 40 | due to business interruption,) arising out of the use or inability to 41 | use the materials on Blogify's Internet site, even if Blogify or an 42 | authorized representative has been notified orally or in writing of 43 | the possibility of such damage. Because some jurisdictions do not 44 | allow limitations on implied warranties, or limitations of liability 45 | for consequential or incidental damages, these limitations may not 46 | apply to you. 47 |
48 |50 | Blogify has not reviewed all of the sites linked to its Internet web 51 | site and is not responsible for the contents of any such linked site. 52 | The inclusion of any link does not imply endorsement by Blogify of the 53 | site. Use of any such linked web site is at the user's own risk. 54 |
55 |57 | Users agree and certify that they have rights to share all content 58 | that they post on Blogify — including, but not limited to, information 59 | posted in articles, discussions, and comments. This rule applies to 60 | prose, code snippets, collections of links, etc. Regardless of 61 | citation, users may not post copy and pasted content that does not 62 | belong to them. Users assume all risk for the content they post, 63 | including someone else's reliance on its accuracy, claims relating to 64 | intellectual property, or other legal rights. If you believe that a 65 | user has plagiarized content, misrepresented their identity, 66 | misappropriated work, or otherwise run afoul of DMCA regulations, 67 | please email. Blogify may remove any content users post for any 68 | reason. 69 |
70 |72 | Blogify may revise these terms of use for its web site at any time 73 | without notice. By using this web site you are agreeing to be bound by 74 | the then current version of these Terms and Conditions of Use. 75 |
76 |78 | Blogify has the right to maintain a list of reserved names which will 79 | not be made publicly available. These reserved names may be set aside 80 | for purposes of proactive trademark protection, avoiding user 81 | confusion, security measures, or any other reason (or no reason). 82 |
83 |84 | Additionally, Blogify reserves the right to change any already-claimed 85 | name at its sole discretion. In such cases, Blogify will make 86 | reasonable effort to find a suitable alternative and assist with any 87 | transition-related concerns. 88 |
89 |91 | The following policy applies to articles, and all other works shared 92 | on the Blogify platform: 93 |
94 |112 | Blogify reserves the right to remove any content that it deems to be 113 | in violation of this policy at its sole discretion. Additionally, 114 | Blogify reserves the right to restrict any user’s ability to 115 | participate on the platform at its sole discretion. 116 |
117 | 118 |120 | Any claim relating to Blogify's web site shall be governed by the laws 121 | of the State of New York without regard to its conflict of law 122 | provisions. 123 |
124 |General Terms and Conditions applicable to Use of a Web Site.
125 |