Skip to content

Commit 93f0dc1

Browse files
committed
new site, who dis?
1 parent 5dc72c0 commit 93f0dc1

31 files changed

+3387
-136
lines changed

.eleventy.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
module.exports = function(eleventyConfig) {
2+
// Copy static files
3+
eleventyConfig.addPassthroughCopy("src/media");
4+
eleventyConfig.addPassthroughCopy("src/css");
5+
eleventyConfig.addPassthroughCopy("src/js");
6+
eleventyConfig.addPassthroughCopy("src/.well-known");
7+
eleventyConfig.addPassthroughCopy("src/CNAME");
8+
9+
// Add date filters
10+
eleventyConfig.addFilter("dateReadable", (dateObj) => {
11+
return new Date(dateObj).toLocaleDateString('en-US', {
12+
year: 'numeric',
13+
month: 'long',
14+
day: 'numeric'
15+
});
16+
});
17+
18+
// RSS date filter
19+
eleventyConfig.addFilter("dateToRfc3339", (dateObj) => {
20+
return new Date(dateObj).toISOString();
21+
});
22+
23+
// Get newest date in collection
24+
eleventyConfig.addFilter("getNewestCollectionItemDate", (collection) => {
25+
return new Date(Math.max(...collection.map(item => item.date)));
26+
});
27+
28+
// Convert HTML to absolute URLs
29+
eleventyConfig.addFilter("htmlToAbsoluteUrls", (htmlContent, base) => {
30+
if (!htmlContent) return '';
31+
// Simple implementation - in production you might want to use a proper HTML parser
32+
return htmlContent.replace(/src="\/([^"]+)"/g, `src="${base}/$1`)
33+
.replace(/href="\/([^"]+)"/g, `href="${base}/$1`);
34+
});
35+
36+
// Add excerpt support
37+
eleventyConfig.setFrontMatterParsingOptions({
38+
excerpt: true,
39+
excerpt_separator: "<!-- excerpt -->"
40+
});
41+
42+
return {
43+
dir: {
44+
input: "src",
45+
output: "_site",
46+
includes: "_includes",
47+
layouts: "_layouts",
48+
data: "_data"
49+
},
50+
htmlTemplateEngine: "njk",
51+
markdownTemplateEngine: "njk"
52+
};
53+
};

.gitignore

Lines changed: 3 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -1,139 +1,6 @@
1-
# Logs
2-
logs
3-
*.log
4-
npm-debug.log*
5-
yarn-debug.log*
6-
yarn-error.log*
7-
lerna-debug.log*
8-
9-
# Diagnostic reports (https://nodejs.org/api/report.html)
10-
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11-
12-
# Runtime data
13-
pids
14-
*.pid
15-
*.seed
16-
*.pid.lock
17-
18-
# Directory for instrumented libs generated by jscoverage/JSCover
19-
lib-cov
20-
21-
# Coverage directory used by tools like istanbul
22-
coverage
23-
*.lcov
24-
25-
# nyc test coverage
26-
.nyc_output
27-
28-
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29-
.grunt
30-
31-
# Bower dependency directory (https://bower.io/)
32-
bower_components
33-
34-
# node-waf configuration
35-
.lock-wscript
36-
37-
# Compiled binary addons (https://nodejs.org/api/addons.html)
38-
build/Release
39-
40-
# Dependency directories
411
node_modules/
42-
jspm_packages/
43-
44-
# Snowpack dependency directory (https://snowpack.dev/)
45-
web_modules/
46-
47-
# TypeScript cache
48-
*.tsbuildinfo
49-
50-
# Optional npm cache directory
51-
.npm
52-
53-
# Optional eslint cache
54-
.eslintcache
55-
56-
# Optional stylelint cache
57-
.stylelintcache
58-
59-
# Optional REPL history
60-
.node_repl_history
61-
62-
# Output of 'npm pack'
63-
*.tgz
64-
65-
# Yarn Integrity file
66-
.yarn-integrity
67-
68-
# dotenv environment variable files
2+
_site/
3+
.DS_Store
4+
*.log
695
.env
70-
.env.*
71-
!.env.example
72-
73-
# parcel-bundler cache (https://parceljs.org/)
74-
.cache
75-
.parcel-cache
76-
77-
# Next.js build output
78-
.next
79-
out
80-
81-
# Nuxt.js build / generate output
82-
.nuxt
83-
dist
84-
85-
# Gatsby files
866
.cache/
87-
# Comment in the public line in if your project uses Gatsby and not Next.js
88-
# https://nextjs.org/blog/next-9-1#public-directory-support
89-
# public
90-
91-
# vuepress build output
92-
.vuepress/dist
93-
94-
# vuepress v2.x temp and cache directory
95-
.temp
96-
.cache
97-
98-
# Sveltekit cache directory
99-
.svelte-kit/
100-
101-
# vitepress build output
102-
**/.vitepress/dist
103-
104-
# vitepress cache directory
105-
**/.vitepress/cache
106-
107-
# Docusaurus cache and generated files
108-
.docusaurus
109-
110-
# Serverless directories
111-
.serverless/
112-
113-
# FuseBox cache
114-
.fusebox/
115-
116-
# DynamoDB Local files
117-
.dynamodb/
118-
119-
# Firebase cache directory
120-
.firebase/
121-
122-
# TernJS port file
123-
.tern-port
124-
125-
# Stores VSCode versions used for testing VSCode extensions
126-
.vscode-test
127-
128-
# yarn v3
129-
.pnp.*
130-
.yarn/*
131-
!.yarn/patches
132-
!.yarn/plugins
133-
!.yarn/releases
134-
!.yarn/sdks
135-
!.yarn/versions
136-
137-
# Vite logs files
138-
vite.config.js.timestamp-*
139-
vite.config.ts.timestamp-*

README.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# codeGROOVE Website
2+
3+
A modern, professional SaaS website for codeGROOVE built with Eleventy (11ty).
4+
5+
## Features
6+
7+
- **Modern SaaS Design**: Professional yet funky design that maintains the codeGROOVE personality
8+
- **Static Site Generation**: Built with Eleventy for fast performance and easy deployment
9+
- **Responsive Design**: Fully responsive across all devices
10+
- **Blog System**: Markdown-based blog with sample article
11+
- **Security First**: Includes security.txt file with Signal contact
12+
- **SEO Optimized**: Proper meta tags and structured content
13+
14+
## Pages
15+
16+
- **Homepage**: Compelling value proposition and call-to-action
17+
- **About**: Company story and principles
18+
- **Products**: Overview of upcoming developer tools
19+
- **Blog**: Technical insights and updates
20+
- **Open Source**: Commitment to open source community
21+
- **Security**: Security practices and responsible disclosure
22+
- **Contact**: Multiple ways to get in touch
23+
24+
## Development
25+
26+
### Prerequisites
27+
28+
- Node.js (v14 or higher)
29+
- npm
30+
31+
### Installation
32+
33+
```bash
34+
npm install
35+
```
36+
37+
### Development Server
38+
39+
```bash
40+
npm start
41+
```
42+
43+
This will start a local development server with hot reload at `http://localhost:8080`.
44+
45+
### Build for Production
46+
47+
```bash
48+
npm run build
49+
```
50+
51+
This will generate the static site in the `_site` directory.
52+
53+
### Clean Build
54+
55+
```bash
56+
npm run clean
57+
```
58+
59+
This removes the `_site` directory.
60+
61+
## Project Structure
62+
63+
```
64+
src/
65+
├── _includes/ # Reusable includes
66+
├── _layouts/ # Page layouts
67+
│ ├── base.njk # Base layout with navigation
68+
│ └── post.njk # Blog post layout
69+
├── _data/ # Site data
70+
├── blog/ # Blog posts (Markdown)
71+
├── css/ # Stylesheets
72+
│ └── main.css # Main stylesheet
73+
├── js/ # JavaScript
74+
│ └── main.js # Main JavaScript file
75+
├── media/ # Images and fonts
76+
├── .well-known/ # Well-known files
77+
│ └── security.txt # Security contact information
78+
└── *.njk # Page templates
79+
```
80+
81+
## Deployment
82+
83+
The site can be deployed to any static hosting service:
84+
85+
- **GitHub Pages**: Push the `_site` directory
86+
- **Netlify**: Connect your repository and set build command to `npm run build`
87+
- **Vercel**: Similar to Netlify
88+
- **Custom**: Upload the `_site` directory to your server
89+
90+
## Customization
91+
92+
### Colors
93+
94+
Edit the CSS variables in `src/css/main.css`:
95+
96+
```css
97+
:root {
98+
--color-primary: #ffff00; /* codeGROOVE yellow */
99+
--color-secondary: #000000; /* Black */
100+
/* ... */
101+
}
102+
```
103+
104+
### Typography
105+
106+
The site uses the Ojuju font family for headings and system fonts for body text.
107+
108+
### Content
109+
110+
All content is in the `src/` directory. Pages use Nunjucks templating with Markdown support for blog posts.
111+
112+
## License
113+
114+
Copyright 2024 codeGROOVE. All rights reserved.

0 commit comments

Comments
 (0)